#include <stdio.h>
#include <stdlib.h>

typedef struct fila_s{
  int tempoInicio;
  int tempoCpu;
  int tempoEspera;
  int processoId;
  struct fila_s *next;
}fila_t;

int IDprocessos = 0;

void filaInsereItem(fila_t *fila, fila_t *item)
{
  fila_t *aux;
  
  aux = fila;

  if(fila == NULL){
    fila = item;
  }
  else {
    while(aux && aux->next)
      aux = aux->next;

    item->next = NULL;
    aux->netx = item;
  }
}

fila_t* filaPegaItem(fila_t *fila)
{
  fila_t *aux;
  aux = fila;
  if(fila)
    fila = fila->next;
  return aux;
}

void fifoExecucaoEncerada(fila_t *filaAptos, fila_t *processoAtual, int tempo)
{
  processoAtual->tempoCpu =+ tempo - processoAtual->tempoInicio;
  //ecrever o tempo do processo
  printf("Processo = %d - tempo de execucao = %d", processoAtual->processoId, processoAtual->tempoCpu);

  fifoExecutaProximo(filaAptos, processoAtual, tempo);

}

void fifoLiberaCpu(fila_t *filaAptos,fila_t *processoAtual, int tempo)
{
  processoAtual->tempoCpu =+ tempo - processoAtual->tempoInicio;
  processoAtual->tempoInicio = tempo;
  filaInsereItem(filaAptos, processoAtual);

  fifoExecutaProximo(filaAptos, processoAtual, tempo);
}

void fifoExecutaProximo(fila_t *filaAptos,fila_t *processoAtual, int tempo)
{
  if(filaAptos){
    processoAtual = filePegaItem(filaAptos);
    if(processoAtual != NULL){
      processoAtual->tempoEspera =+  tempo - processoAtual->tempoInicio;
      processoAtual->tempoInicio = tempo;
    }
  }
}

void fifoAddApto(fila_t *filaAptos, fila_t *curentProcess, int tempo)
{
  fila_t *process;
  process =(fila_t*) malloc(sizeof(fila_t));

  process->tempoInicio = 0;
  process->tempoCpu = 0;
  process->tempoEspera = 0;
  process->processoId = IDprocessos;
  IDprocessos++;

  if(currentProcess == NULL){
    process->tempoInicio = tempo;
    process->tempoEspera = 0;
    currentProcess = process;
  }else{

    filaInsereItem(fileAptos, process);
  }
}

void lendoArquivo(char *fileName) 
{
    FILE *entrada;
	char buffer[50];
	
	entrada = fopen(fileName, "r");
	if(entrada == NULL){
		printf("Erro ao abrir o arquivo");
	}
	fgets(buffer, 50, entrada);
		


    

}


int main(int argc, char *argv[])
{
  FILE *entrada;

  return 0;
}